# Import Module
from tkinter import *
#pack()和grid()是Tkinter中两种不同的布局管理器，它们有很大的区别：
# pack() 布局管理器
# 更简单，按照添加顺序自动排列控件
# 主要按照上下左右的方式排列
# 适合简单的布局需求
# 不太容易精确控制位置

# grid() 布局管理器
# 更灵活，使用行和列的概念
# 像表格一样精确定位每个控件
# 适合复杂的布局需求
# 可以精确控制位置

# 注意：不要在同一个父窗口中混用pack()和grid()，这会导致错误。


# create root window
root = Tk()

# root window title and dimension
root.title("Welcome to GeekForGeeks")
# Set geometry(widthxheight)
root.geometry('350x200')

# adding a label to the root window
lbl = Label(root, text = "Are you a Geek?")
lbl.grid()

# 当点击按钮时，标签的文本会发生变化
def clicked():
    lbl.configure(text = "I just got clicked")

# button widget with red color text
# inside
# fg, foreground：设置文字颜色
btn = Button(root, text = "Click me" ,
             fg = "red", command=clicked)

# 这是Tkinter中用于布局控件（组件）的一个方法，使用网格（grid）系统来定位按钮。
# 具体来说：
# grid() 是Tkinter的几何管理器之一，它会创建一个不可见的表格来放置控件
# column=1 表示将按钮放在第2列（因为列号从0开始计数）
# row=0 表示将按钮放在第1行（因为行号从0开始计数）
btn.grid(column=1, row=0)

# Execute Tkinter
root.mainloop()
